소스 분석에 자주 쓰는 셸 명령어 모음

NOTE

개발 서버에서 대규모 C 소스를 뒤지거나 프로세스/라이브러리 상태를 확인할 때 바로 쓰는 명령어 모음. bash와 csh(tcsh) 두 계열을 함께 정리한다.

왜 bash와 csh를 둘 다 보는가

통신 장비 등 운영 계정은 관례적으로 csh(tcsh) 를 기본 셸로 쓰는 경우가 많다. 반면 개인 개발 환경과 대부분의 스크립트는 bash다. 두 셸은 환경변수 설정(export vs setenv)과 리다이렉션 문법이 달라서, 같은 명령이 한쪽에서만 동작하는 일이 자주 생긴다.

bash 기반 명령어

명령어사용법설명비고
findfind / -name "찾을내용" 2>/dev/null찾을 내용 중에 에러값 넘기기bash
grepgrep -rn --include="*.c" "검색어" [경로]특정 경로 하위 중에서 특정 파일안에 들어있는 검색어 일치값 grep 찾기bash
grepgrep -rn "검색어" [경로]파일 확장자 제한 없이 경로 하위 전체에서 검색어 일치 줄+줄번호 찾기소스코드 함수 추적 사용
sedsed -n 'n1,n2p' [경로]파일의 n1~n2번째 줄만 출력소스코드 함수 추적 사용
ps(psg)ps -ef | grep "프로세스명"특정 이름을 가진 프로세스의 PID·기동 시각·실행 커맨드 확인 (관례상 alias psg='ps -ef | grep'로 줄여 쓰기도 함)프로세스 상태 확인용
lddldd [바이너리 경로] | grep "라이브러리명"실행 파일/프로세스가 실제로 링크한 공유 라이브러리(.so) 경로 확인링크된 라이브러리 버전 불일치 디버깅에 사용
lddldd [바이너리 경로] | grep "신규 라이브러리명"Makefile에 -l라이브러리 추가 후 빌드한 바이너리가 그 라이브러리를 실제로 링크했는지 확인예: ldd myserver | grep jansson — 새 라이브러리 도입 시 빌드 확인용
aliasalias key='value'별칭bash

csh 기반 명령어

명령어사용법설명비고
findfind / -name "찾을내용" |& grep -v -i "제외할내용"검색결과 필터링csh
grepgrep -rn --include="*.c" "검색어" [경로]특정 경로 하위 중에서 특정 파일안에 들어있는 검색어 일치값 grep 찾기csh
aliasalias key "value"별칭csh